import * as dotenv from 'dotenv';
import { ValidationPipe, HttpException, HttpStatus } from '@nestjs/common';
import { ValidationError } from 'class-validator';
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

dotenv.config();
console.log(process.env.JWT_SECRET);
async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.useGlobalPipes(
    new ValidationPipe({
      exceptionFactory: (errors: ValidationError[]) => {
        const messages = errors.map((error) =>
          Object.values(error.constraints).join(', '),
        );
        return new HttpException(messages, HttpStatus.BAD_REQUEST);
      },
    }),
  );
  await app.listen(3000);
  process.on('uncaughtException', (err) => {
    console.error('有一个未处理的错误', err);
    // 这里也可以做一些清理的操作，然后使用 `process.exit()`;
  });
  process.on('unhandledRejection', (reason) => {
    console.error('未处理的 Promise Rejection', reason);
    // 这里也可以做一些清理的操作，然后使用 `process.exit()`;
  });
}
bootstrap();
